Methods and Systems for Providing Notifications to Users of a Social Networking Service

ABSTRACT

A method determines user intent associated with a post from a user on a social networking service, based at least in part on content of the post. The method generates a first notification of the user intent associated with the post and selects a plurality of users of the social networking service to receive the first notification. The method provides the first notification to the users. After providing the first notification to the plurality of users, the method: (i) receives one or more responses to the first notification from one or more users of the plurality of users, the responses including information responsive to the first notification; (ii) generates a second notification, including indications of determined respective intent associated with the one or more received responses based, at least in part, on content of the one or more received responses; and (iii) provides the second notification to the user.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.15/439,652, filed Feb. 22, 2017, entitled “Methods and Systems forProviding Notifications to Users of a Social Networking Service,” whichis incorporated by reference herein in its entirety.

TECHNICAL FIELD

This relates generally to providing notifications, including but notlimited to providing notifications to users of a social networkingservice.

BACKGROUND

Social networking services provide a convenient means for users to shareinformation. Certain users may possess information (e.g., informationsuch as a review of a local business or tourist attraction) that otherusers may find helpful or useful. However, connecting users that possessuseful information with other users seeking the useful information canbe a challenging process for the social networking services.

SUMMARY

Accordingly, there is a need for methods and systems for notifying usersof a social networking service that possess information sought by otherusers. Determining a user intent associated with a post from a user ofthe social networking service, generating a first notification of theuser intent associated with the post, and providing the firstnotification to a plurality of users (e.g., users that may possessuseful information associated with the user intent) can improve thesharing of useful information on the social networking service. Suchmethods and systems provide the social networking service with processesto provide information (e.g., relevant, useful information) responsiveto the first notification to the user.

In accordance with some embodiments, a method is performed at a serversystem having one or more processors and memory storing instructions forexecution by the processors. The method includes determining a userintent associated with a post from a user on a social networkingservice, based at least in part on content of the post. The methodfurther includes generating a first notification of the user intentassociated with the post and selecting a plurality of users of thesocial networking service to receive the first notification. The methodfurther includes providing the first notification to the plurality ofusers, and after providing the first notification to the plurality ofusers: (1) receiving one or more responses to the first notificationfrom one or more users of the plurality of users, the one or moreresponses including information responsive to the first notification,and (2) providing the information responsive to the first notificationto the user.

In accordance with some embodiments, a server system includes one ormore processors/cores and memory storing one or more programs configuredto be executed by the one or more processors/cores. The one or moreprograms include instructions for performing the operations of themethod described above. In accordance with some embodiments, anon-transitory computer-readable storage medium has stored thereininstructions that, when executed by one or more processors/cores of aserver system, cause the server system to perform the operations of themethod described above.

BRIEF DESCRIPTION OF THE DRAWINGS

For a better understanding of the various described embodiments,reference should be made to the Description of Embodiments below, inconjunction with the following drawings in which like reference numeralsrefer to corresponding parts throughout the figures and specification.

FIG. 1 is a block diagram illustrating an exemplary network architectureof a social network, in accordance with some embodiments.

FIG. 2A is a block diagram illustrating an exemplary server system, inaccordance with some embodiments.

FIG. 2B is a block diagram illustrating an exemplary client device, inaccordance with some embodiments.

FIGS. 3A-3F illustrate exemplary graphical user interfaces (GUIs) forproviding notifications to users of a social networking system on aclient device, in accordance with some embodiments.

FIGS. 4A-4C are flow diagrams illustrating a method of providingnotifications to users of a social networking system, in accordance withsome embodiments.

DESCRIPTION OF EMBODIMENTS

Reference will now be made to embodiments, examples of which areillustrated in the accompanying drawings. In the following description,numerous specific details are set forth in order to provide anunderstanding of the various described embodiments. However, it will beapparent to one of ordinary skill in the art that the various describedembodiments may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, circuits, andnetworks have not been described in detail so as not to unnecessarilyobscure aspects of the embodiments.

It will also be understood that, although the terms first, second, etc.are, in some instances, used herein to describe various elements, theseelements should not be limited by these terms. These terms are used onlyto distinguish one element from another. For example, a firstnotification could be termed a second notification, and, similarly, asecond notification could be termed a first notification, withoutdeparting from the scope of the various described embodiments. The firstnotification and the second notification are both notifications, butthey are not the same notifications.

The terminology used in the description of the various describedembodiments herein is for the purpose of describing particularembodiments only and is not intended to be limiting. As used in thedescription of the various described embodiments and the appendedclaims, the singular forms “a,” “an,” and “the” are intended to includethe plural forms as well, unless the context clearly indicatesotherwise. It will also be understood that the term “and/or” as usedherein refers to and encompasses any and all possible combinations ofone or more of the associated listed items. It will be furtherunderstood that the terms “includes,” “including,” “comprises,” and/or“comprising,” when used in this specification, specify the presence ofstated features, integers, steps, operations, elements, and/orcomponents, but do not preclude the presence or addition of one or moreother features, integers, steps, operations, elements, components,and/or groups thereof.

As used herein, the term “if” is, optionally, construed to mean “when”or “upon” or “in response to determining” or “in response to detecting”or “in accordance with a determination that,” depending on the context.Similarly, the phrase “if it is determined” or “if [a stated conditionor event] is detected” is, optionally, construed to mean “upondetermining” or “in response to determining” or “upon detecting [thestated condition or event]” or “in response to detecting [the statedcondition or event]” or “in accordance with a determination that [astated condition or event] is detected,” depending on the context.

As used herein, the term “exemplary” is used in the sense of “serving asan example, instance, or illustration” and not in the sense of“representing the best of its kind.”

FIG. 1 is a block diagram illustrating an exemplary network architectureof a social network in accordance with some embodiments. The networkarchitecture 100 includes a number of client devices (also called“client systems,” “client computers,” or “clients”) 104-1, 104-2, . . .104-n communicably connected to a social networking system 108 by one ormore networks 106.

In some embodiments, the client devices 104-1, 104-2, . . . 104-n arecomputing devices such as smart watches, personal digital assistants,portable media players, smart phones, tablet computers, 2D gamingdevices, 3D gaming devices, virtual reality devices, laptop computers,desktop computers, televisions with one or more processors embeddedtherein or coupled thereto, in-vehicle information systems (e.g., anin-car computer system that provides navigation, entertainment, and/orother information), or other appropriate computing devices that can beused to communicate with an electronic social networking system andother computing devices (e.g., via the electronic social networkingsystem). In some embodiments, the social networking system 108 is asingle computing device such as a computer server, while in otherembodiments, the social networking system 108 is implemented by multiplecomputing devices working together to perform the actions of a serversystem (e.g., cloud computing). In some embodiments, the network 106 isa public communication network (e.g., the Internet or a cellular datanetwork), a private communications network (e.g., private LAN or leasedlines), or a combination of such communication networks.

Users 102-1, 102-2, . . . 102-n employ the client devices 104-1, 104-2,. . . 104-n to access the social networking system 108 and toparticipate in a social networking service. For example, one or more ofthe client devices 104-1, 104-2, . . . 104-n execute web browserapplications that can be used to access the social networking service.As another example, one or more of the client devices 104-1, 104-2, . .. 104-n execute software applications that are specific to the one ormore social networks (e.g., social networking “apps”, such as a Facebooksocial networking application, a messaging application, etc.).

Users interacting with the client devices 104-1, 104-2, . . . 104-n canparticipate in the social networking service provided by the socialnetworking system 108 by providing and/or consuming (e.g., posting,writing, viewing, publishing, broadcasting, promoting, recommending,sharing) information, such as text comments (e.g., statuses, updates,announcements, replies, location “checks-in,” private/group messages),digital content (e.g., photos (i.e., images), videos, audio files,links, documents), and/or other electronic content. In some embodiments,users provide information to a page, group, message board, feed, and/oruser profile of a social networking service provided by the socialnetworking system 108. Users of the social networking service can alsoannotate information posted by other users of the social networkingservice (e.g., endorsing or “liking” a posting of another user,commenting on a posting by another user, or sharing a posting of anotheruser).

In some embodiments, information can be posted on a user's behalf bysystems and/or services external to the social network or the socialnetworking system 108. For example, the user may post a review of amovie to a movie review website, and with proper permissions thatwebsite may cross-post the review to the social network on the user'sbehalf. In another example, a software application executing on a mobileclient device, with proper permissions, may use a global navigationsatellite system (GNSS) (e.g., global positioning system (GPS), GLONASS,etc.) or other geo-location capabilities (e.g., Wi-Fi or hybridpositioning systems) to determine the user's location and update thesocial network with the user's location (e.g., “At Home,” “At Work,” “InSan Francisco, Calif.,” etc.), and/or update the social network withinformation derived from and/or based on the user's location. Usersinteracting with the client devices 104-1, 104-2, . . . 104-n can alsouse the social network provided by the social networking system 108 todefine groups of users. Users interacting with the client devices 104-1,104-2, . . . 104-n can also use the social network provided by thesocial networking system 108 to communicate (e.g., using a messagingapplication or built-in feature) and collaborate with each other.

In some embodiments, the network architecture 100 may also includethird-party servers (not shown). In some embodiments, third-partyservers are associated with third-party service providers that provideservices and/or features to users of a network.

FIG. 2A is a block diagram illustrating an exemplary server system 200in accordance with some embodiments. In some embodiments, the serversystem 200 is an example of a social networking system 108 (FIG. 1). Theserver system 200 typically includes one or more processing units(processors or cores) 202, one or more network or other communicationsinterfaces 204, memory 206, and one or more communication buses 208 forinterconnecting these components. The communication buses 208 optionallyinclude circuitry (sometimes called a chipset) that interconnects andcontrols communications between system components. The server system 200optionally includes a user interface (not shown). The user interface, ifprovided, may include a display device and optionally includes inputssuch as a keyboard, mouse, trackpad, and/or input buttons. Alternativelyor in addition, the display device includes a touch-sensitive surface,in which case the display is a touch-sensitive display.

Memory 206 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid state storage devices. Memory 206 may optionallyinclude one or more storage devices remotely located from theprocessor(s) 202. Memory 206, or alternately the non-volatile memorydevice(s) within memory 206, includes a non-transitory computer readablestorage medium. In some embodiments, memory 206 or the computer readablestorage medium of memory 206 stores the following programs, modules, anddata structures, or a subset or superset thereof:

-   -   an operating system 210 that includes procedures for handling        various basic system services and for performing        hardware-dependent tasks;    -   a network communication module 212 that is used for connecting        server system 200 (e.g., social networking system 108, FIG. 1)        to other computers (e.g., client devices 104-1, 104-2, . . .        104-n, and/or third party servers) via the one or more        communication network interfaces 204 (wired or wireless) and one        or more communication networks, such as the Internet, cellular        telephone networks, mobile data networks, other wide area        networks, local area networks, metropolitan area networks, and        so on;    -   a server database 214 for storing data associated with the        social networking service, such as:        -   entity information 216, such as user information 218, which            includes content items (e.g., images, videos, etc.) and            other user information (e.g., age of user, sex of the user,            etc.);        -   connection information 220;        -   user content 222; and        -   intent log 224;    -   text analyzing module 226 that operates upon text provided by        users of the social networking service (e.g., text in posts,        responses, etc.); and    -   a social networking server module 228 for providing social        networking services and related features (e.g., in conjunction        with social networking client module 280 on the client device        240, FIG. 2B), which includes:        -   a login module 230 for logging a user 102 at a client device            104 into the social networking system 108; and        -   a notification generator module 232 for generating a            notification (e.g., a first notification) based on a post            from a user 102-1, providing the notification to other users            102-2 . . . 102-n, and providing received responses (or            information contained therein) to the user 102-1, which            includes:            -   a relevance module 234 for determining a degree of                relevance of received responses to the post from the                user;            -   a selection module 236 for selecting users to receive                the notification; and            -   a notification compiler module 238 for compiling the                received responses and presenting one or more of the                received responses (or information contained therein) to                the user 102.

The server database 214 stores data associated with the server system200 in one or more types of databases, such as text, graph, dimensional,flat, hierarchical, network, object-oriented, relational, and/or XMLdatabases.

In some embodiments, the server database 214 includes a graph database,with entity information 216 represented as nodes in the graph databaseand connection information 220 represented as edges in the graphdatabase. The graph database includes a plurality of nodes, as well as aplurality of edges that define connections between corresponding nodes.In some embodiments, the nodes and/or edges themselves are data objectsthat include the identifiers, attributes, and information for theircorresponding entities, some of which are rendered at clients 104 oncorresponding profile pages or other pages in the social networkingservice. In some embodiments, the nodes also include pointers orreferences to other objects, data structures, or resources for use inrendering content in conjunction with the rendering of the pagescorresponding to the respective nodes at clients 104.

Entity information 216 includes user information 218, such as picturesassociated with the user (e.g., images where the user has been tagged orotherwise identified), a plurality of icons, login information, paymentcredentials (e.g., credit-card or debit-card information, bankinformation, etc. for conducting financial transactions through thesocial networking service), privacy and other preferences, biographicaldata, and the like. In some embodiments, for a given user, the userinformation 218 includes the user's name, profile picture, a pluralityof icons, contact information, birth date, sex, marital status, familystatus, employment, education background, preferences, interests, and/orother demographic information. In some embodiments, the user informationmay include other information, such as likes and comments, associatedwith, for example, profile pictures of the user (or other photos of theuser).

In some embodiments, entity information 216 includes information about aphysical location (e.g., a restaurant, theater, landmark, city, state,or country), real or intellectual property (e.g., a sculpture, painting,movie, game, song, idea/concept, photograph, or written work), abusiness, a group of people, and/or a group of businesses. In someembodiments, entity information 216 includes information about aresource, such as an audio file, a video file, a digital photo, a textfile, a structured document (e.g., web page), or an application. Forexample, entity information 216 may include a location tag (e.g., PaloAlto, Calif., USA) for one or more digital photos. In some embodiments,the resource is located in the social networking system 108 (e.g., incontent 222) or on an external server, such as a third-party server (notshown).

In some embodiments, connection information 220 includes informationabout the relationships between entities in server database 214. In someembodiments, connection information 220 includes information about edgesthat connect pairs of nodes in a graph database. In some embodiments, anedge connecting a pair of nodes represents a relationship between thepair of nodes (e.g., also referred to herein as a contact).

In some embodiments, an edge includes or represents one or more dataobjects or attributes that correspond to the relationship between a pairof nodes. For example, when a first user indicates that a second user isa “friend” of the first user, the social networking system 108 maytransmit a “friend request” to the second user. If the second userconfirms the “friend request,” the social networking system 108 maycreate and store an edge connecting the first user's user node and thesecond user's user node in a graph database as connection information220 that indicates that the first user and the second user are friends(also referred to herein as a direct connection). In some embodiments,connection information 220 represents a friendship, a familyrelationship, a business or employment relationship, a fan relationship,a follower relationship, a visitor relationship, a subscriberrelationship, a superior/subordinate relationship, a reciprocalrelationship, a non-reciprocal relationship, another suitable type ofrelationship, or two or more such relationships.

In some embodiments, an edge between a user node and another entity noderepresents connection information 220 about a particular action oractivity performed by a user of the user node towards the other entitynode. For example, a user may “like” or have “attended,” “played,”“listened,” “cooked,” “worked at,” “watched,” etc. the entity at theother node. The page in the social networking service that correspondsto the entity at the other node may include, for example, a selectable“like,” “check in,” “add to favorites,” etc. icon (e.g., an affordance).After the user clicks one of these icons, the social networking system108 may create a “like” edge, “check in” edge, a “favorites” edge, etc.in response to the corresponding user action. As another example, theuser may listen to a particular song using a particular application(e.g., an online music application). In this case, the social networkingsystem 108 may create a “listened” edge and a “used” edge between theuser node that corresponds to the user and the entity nodes thatcorrespond to the song and the application, respectively, to indicatethat the user listened to the song and used the application. Inaddition, the social networking system 108 may create a “played” edgebetween the entity nodes that correspond to the song and the applicationto indicate that the particular song was played by the particularapplication.

In some embodiments, content 222 includes text (e.g., ASCII, SGML,HTML), images (e.g., jpeg, tif and gif), graphics (e.g., vector-based orbitmap), audio, video (e.g., mpeg), other multimedia, and/orcombinations thereof. In some embodiments, content 222 includesexecutable code (e.g., script for API calls), podcasts, links, and thelike. In some embodiments, content 222 includes posts 240 (e.g.,previous posts and/or current posts) along with associated notificationsand responses.

In some embodiments, intent log 224 includes determined user intentsassociated with posts and responses. For example, the intent log 224 mayinclude determined intents for respective posts.

FIG. 2B is a block diagram illustrating an exemplary client device 240,in accordance with some embodiments. The client device 240 is an exampleof the one or more client devices 104-1, 104-2, . . . 104-n (FIG. 1).The client device 240 typically includes one or more processing units(processors or cores) 242, one or more network or other communicationsinterfaces 244, memory 246, and one or more communication buses 248 forinterconnecting these components. The communication buses 248 optionallyinclude circuitry (sometimes called a chipset) that interconnects andcontrols communications between system components. The client device 240includes a user interface 250. The user interface 250 typically includesa display device 252. In some embodiments, the client device 240includes inputs such as a keyboard, mouse, and/or other input buttons256. Alternatively or in addition, in some embodiments, the displaydevice 252 includes a touch-sensitive surface 254, in which case thedisplay device 252 is a touch-sensitive display. In some embodiments,the touch-sensitive surface 254 is configured to detect various swipegestures (e.g., continuous gestures in vertical and/or horizontaldirections) and/or other gestures (e.g., single/double tap). In clientdevices that have a touch-sensitive display 252, a physical keyboard isoptional (e.g., a soft keyboard may be displayed when keyboard entry isneeded). The user interface 250 also includes an audio output device258, such as speakers or an audio output connection connected tospeakers, earphones, or headphones. Furthermore, some client devices 240use a microphone and voice recognition to supplement or replace thekeyboard. Optionally, the client device 240 includes an audio inputdevice 260 (e.g., a microphone) to capture audio (e.g., speech from auser). Optionally, the client device 240 includes a location detectiondevice 262, such as a GNSS (e.g., GPS, GLONASS, etc.) or othergeo-location receiver, for determining the location of the client device240. The client device 240 also optionally includes an image/videocapture device 264, such as a camera and/or a webcam.

In some embodiments, the client device 240 includes one or more optionalsensors (e.g., gyroscope, accelerometer) for detecting motion and/or achange in orientation of the client device. In some embodiments, thedetected motion and/or orientation of the client device 240 (e.g., themotion/change in orientation corresponding to a user input produced by auser of the client device) is used to manipulate an interface (orcontent within the interface) displayed on the client device 240. Insome embodiments, the one or more optional sensors may include anoptical projection sensor for projecting an interface displayed on theclient device 240 in 3D (e.g., project 3D hologram). Moreover, a usermay manipulate the interface displayed on the client device 240 byinteracting with the projected holographic 3D display.

Memory 246 includes high-speed random-access memory, such as DRAM, SRAM,DDR RAM, or other random-access solid-state memory devices; and mayinclude non-volatile memory, such as one or more magnetic disk storagedevices, optical disk storage devices, flash memory devices, or othernon-volatile solid-state storage devices. Memory 246 may optionallyinclude one or more storage devices remotely located from theprocessor(s) 242. Memory 246, or alternately the non-volatile memorydevice(s) within memory 246, includes a non-transitory computer-readablestorage medium. In some embodiments, memory 246 or the computer-readablestorage medium of memory 246 stores the following programs, modules, anddata structures, or a subset or superset thereof:

-   -   an operating system 266 that includes procedures for handling        various basic system services and for performing        hardware-dependent tasks;    -   a network communication module 268 that is used for connecting        the client device 240 to other computers via the one or more        communication network interfaces 244 (wired or wireless) and one        or more communication networks, such as the Internet, cellular        telephone networks, mobile data networks, other wide area        networks, local area networks, metropolitan area networks, and        so on;    -   an image/video capture module 270 (e.g., a camera module) for        processing a respective image or video captured by the        image/video capture device 264, where the respective image or        video may be sent or streamed (e.g., by a client application        module 276) to the social networking system 108;    -   an audio input module 272 (e.g., a microphone module) for        processing audio captured by the audio input device 260, where        the respective audio may be sent or streamed (e.g., by a client        application module 276) to the social networking system 108;    -   a location detection module 274 (e.g., a GPS, Wi-Fi, or hybrid        positioning module) for determining the location of the client        device 240 (e.g., using the location detection device 262) and        providing this location information for use in various        applications (e.g., social network client module 280); and    -   one or more client application modules 276, including the        following modules (or sets of instructions), or a subset or        superset thereof:        -   a web browser module 278 (e.g., Internet Explorer or Edge by            Microsoft, Firefox by Mozilla, Safari by Apple, or Chrome by            Google) for accessing, viewing, and interacting with web            sites;        -   a social network module 280 for providing an interface to a            social networking service (e.g., a social networking service            provided by social networking system 108) and related            features, and for loading (e.g., within the interface for            the social network module 280) pages associated with            third-party service providers (e.g., to conduct transactions            with the third-party service providers); and/or        -   optional client application modules 282, such as            applications for word processing, calendaring, mapping,            weather, stocks, time keeping, virtual digital assistant,            presenting, number crunching (spreadsheets), drawing,            instant messaging, e mail, telephony, video conferencing,            photo management, video management, a digital music player,            a digital video player, 2D gaming, 3D gaming, virtual            reality, electronic book reader, and/or workout support.

Each of the above identified modules and applications correspond to aset of executable instructions for performing one or more functions asdescribed above and/or in the methods described in this application(e.g., the computer-implemented methods and other information processingmethods described herein). These modules (i.e., sets of instructions)need not be implemented as separate software programs, procedures ormodules, and thus various subsets of these modules are, optionally,combined or otherwise re-arranged in various embodiments. In someembodiments, memory 206 and/or 246 store a subset of the modules anddata structures identified above. Furthermore, memory 206 and/or 246optionally store additional modules and data structures not describedabove.

FIGS. 3A-3F illustrate exemplary GUIs for providing notifications torespective client devices (e.g., client devices 104-1, 104-2, . . .104-n, FIG. 1; client device 240, FIG. 2B) of users (e.g., users 102-1,102-2, . . . 102-n, FIG. 1) of a social networking service. In someembodiments, the GUIs shown may be provided by an application for thesocial networking service executing on the client device (e.g., socialnetworking client module 280, FIG. 2B). Alternatively, in someembodiments, the GUIs shown may be provided on a webpage (e.g.,displayed by browser module 278, FIG. 2B) for the social networkingservice loaded by the client device. Referring to FIG. 3A, the GUIillustrates a home page for the social networking service displayed on adisplay (e.g., display 252, FIG. 2B) of a client device 104-1. The homepage is associated with a user account (e.g., an account for user 102-1,i.e., John Smith). In some embodiments, the home page includes a bannersection 302. The banner section 302 may include a profile button 304(e.g., to adjust profile settings), a notification button 306 (e.g.,indicates reception of a notification), and a profile picture 308 of theuser. In some embodiments, the home page may further include a postsection 310. The post section 310 may include a post bar 312 withinwhich the user may compose a post and a post button 314 for posting thepost to the social networking service. In some embodiments, the homepage may further include a news section 316. The news section 316 mayinclude posts (e.g., post 318) made by users of the social networkingservice. The GUIs in these figures are used to illustrate the processesdescribed below, including the method 400 (FIGS. 4A-4C). While FIGS.3A-3F illustrate examples of GUIs, in other embodiments, one or moreGUIs display user-interface elements in arrangements distinct from theembodiments of FIGS. 3A-3F. Moreover, one or more GUIs may lackfeature(s) described above for ease of illustration.

FIGS. 4A-4C are flow diagrams illustrating a method of providingnotifications to users of a social networking system, in accordance withsome embodiments. The steps of the method 400 may be performed by asocial networking system (e.g., social networking system 108, FIG. 1;server system 200, FIG. 2A). FIGS. 4A-4C correspond to instructionsstored in a computer memory or computer readable storage medium (e.g.,memory 206 of the server system 200). For example, the operations ofmethod 400 are performed, at least in part, by a social networkingserver module (e.g., social networking server module 228, FIG. 2A) and atext analyzing module (e.g., text analyzing module 226, FIG. 2A). Insome embodiments, the steps of the method 400 may be performed by anycombination of client device (e.g., a client device 104, FIG. 1; clientdevice 240, FIG. 2B) and the social networking system. To assist withdescribing the method 400, the method 400 will be described withreference to the exemplary GUIs illustrated in FIGS. 3A-3F.

In performing the method 400, the social networking system determines(402) a user intent associated with a post from a user (e.g., user102-1, FIG. 1) on a social networking service, based at least in part oncontent of the post. In some embodiments, when determining the userintent associated with the post, the social networking system mayidentify (404) a request in the post for a recommendation (e.g., arecommendation for a restaurant). In some embodiments, when determiningthe user intent associated with the post, the social networking systemmay identify (406) an offer in the post (e.g., offering to sell a goodor service). In some embodiments, the content of the post includes textin the post (e.g., words and/or phrases that compose the post). In someembodiments, the content of the post includes other information such aslocational tags (e.g., the user may tag or otherwise identify his or herlocation in the post) and user tags (e.g., the user may tag or otherwiseidentify one or more contacts in the post).

In some embodiments, using a text analyzing program (e.g., textanalyzing module 226, FIG. 2A), the social networking system may analyzethe text in the post to determine the user intent associated with thepost (e.g., analyze text in response to the user 102-1 selecting 322post button 314, FIG. 3A). For example, referring to FIG. 3A, the socialnetworking system may analyze question 320 posed by John Smith (e.g.,user 102-1). As shown, the question 320 reads, “Does anyone know a goodFrench restaurant in Palo Alto?” In some embodiments, the socialnetworking system may use natural language processing to analyze thequestion 320. Those skilled in the art will appreciate that various textanalyzing programs may be used to analyze the question 320.

In some embodiments, the text analyzing program may include a textanalysis model. In some embodiments, the text analysis model may directthe social networking system to identify one or more locations in thetext. For example, referring to FIG. 3A, the social networking systemmay identify that the text includes a location, Palo Alto. In somecircumstances and situations, the identified location may potentiallyrelate to two or more locations (e.g., Palo Alto, Calif. and Palo Alto,Tex.). In these circumstances or situations, the social networkingsystem may further analyze the text and/or identify a current locationof the client device (e.g., the client device 104-1 may be located in ornear Palo Alto, Calif. when the post is made by the user) to resolve theambiguity and determine the intended location. In addition, the socialnetworking system may analyze previous posts made within a relevant timeperiod by the user (e.g., the user 102-1 may have posted earlier in theday, “I love visiting California, it's my favorite state”) to determinethe intended location.

In some embodiments, the text analysis model may direct the socialnetworking system to identify one or more punctuation marks in the text.In this way, the social networking system may determine that a question(e.g., a request for a recommendation) is being made by the user (e.g.,John Smith). For example, referring to FIG. 3A, the social networkingsystem may identify that the question 320 includes a question mark.

In addition, in some embodiments, the text analysis model may direct thesocial networking system to identify one or more trigger wordsand/phrases in the text. In some embodiments, words and phrases such as“does anyone know,” “what is,” and other questioning terms may be afirst category of trigger words and/or phrases associated with a requestfor a recommendation. In another example, words and phrases such as“does anyone want,” “what will you give me,” “I'm selling my,” and otherterms likely to be included in an offer may be a second category oftrigger words and/or phrases associated with an offer.

In some embodiments, when determining the user intent associated withthe post (e.g., the question 320, FIG. 3A), the social networking systemmay compare (408) the content of the post with content of a plurality ofprevious posts (or simply a previous post) made by users of the socialnetworking service (e.g., posts 240, FIG. 2A). Respective posts of theplurality of previous posts may have previously identified intents (410)(e.g., as stored in intent log 224, FIG. 2A). As such, the socialnetworking system may match one or more respective posts of theplurality of previous posts with the post (e.g., the question 320, FIG.3A) using the previously identified intents. For example, a previouspost by a respective user of the social networking service may havebeen, “does anyone know a nice golf course near Salt Lake City?” Inorder to determine a user intent associated with the post, the socialnetworking system may have asked, “would you like recommendations forgolf courses near Salt Lake City?” In response to receiving anaffirmative answer from the respective user, the social networkingsystem may have logged that “does anyone know” may be associated withthe user intent for a requested recommendation. Accordingly, referringto FIG. 3A, the social networking system may compare the question 320 tothe previous post regarding golf courses to determine the user intentassociated with the question 320 (e.g., seeking a recommendation for arestaurant).

In some embodiments, the text analysis model may include or access theplurality of previous posts and the previously identified intents. Inaddition, in accordance with a determination that a number of analyzedposts satisfy a threshold, the social networking system may update thetext analysis model. For example, the updated text analysis model mayinclude updated trigger words and/phrases. In addition, the updated textanalysis model may include an updated plurality of previous posts madeby users of the social networking service and updated identified intentsfor the updated plurality of previous posts.

In some embodiments, referring to FIG. 3A, in response to user selection322 of post button 314, the social networking system may receive arequest from the client device 104-1 for a notification feature providedby the social networking service. In response, the social networkingsystem may generate a first notification (discussed below). In someembodiments, prior to the social networking system receiving therequest, the social networking system (or the client device) maydetermine whether or not the user wants to launch the notificationfeature (e.g., present a yes-or-no question to the user in theapplication or the webpage on the client device 104-1).

The social networking system generates (412) a first notification of theuser intent associated with the post (e.g., the question 320, FIG. 3A).In some embodiments, the social networking system may generate the firstnotification in response to receiving the request from the client device(e.g., the client device 104-1). In some embodiments, the socialnetworking system may generate the first notification in accordance witha determination that the user intent associated with the post satisfiesa user-intent threshold. For example, the social networking system maygenerate the first notification in accordance with a determination thatthe user intent associated with the post is an offer. In anotherexample, the social networking system may generate the firstnotification in accordance with a determination that the user intentassociated with the post is a request for a recommendation.

The social networking system selects (414) a plurality of users of thesocial networking service to receive the first notification. In someembodiments, when selecting the users to receive the first notification,the social networking system may determine (416) respective degrees ofassociation between the user intent and users of the social networkingservice. For example, to determine a respective degree of associationbetween the user intent and a respective user of the social networkingservice, the social networking system may determine a connection (e.g.,an edge) between the user (e.g., a first node) and the respective user(e.g., a second node) of the social networking service in accordancewith the determined user intent (e.g., user intent is for a Frenchrestaurant recommendation, FIG. 3A). In some embodiments, the connectionbetween the first node and the second node may be an indirectconnection. For example, the respective user (e.g., the second node) mayhave recently “checked in” to a location relevant to the user intent(e.g., French Restaurant X in Palo Alto, Calif.) (e.g., a third node).As such, the social networking system may log a connection (e.g., afirst edge) between the respective user (e.g., the second node) and thelocation (e.g., French Restaurant X) (e.g., the third node). Inaddition, the social networking system may log (e.g., temporarily form)multiple connections (e.g., multiple second edges) between the user(e.g., the first node) and each potentially relevant location (e.g.,each French restaurant in Palo Alto), including the third node.Consequently, the social networking system may log the indirectconnection between the user (e.g., the first node) and the respectiveuser (e.g., the second node) via French Restaurant X (e.g., the thirdnode). Based on this connection, the social networking system may selectthe respective user to receive the first notification, because therespective user's action (e.g., “checking in” to French Restaurant X)creates a degree of association between the user intent and therespective user. The social networking system may perform the connectionanalysis for respective users of the social networking service.Moreover, “checking in” is simply one of many ways of creating anindirect connection. Edges and nodes are discussed in further detailabove with reference to FIG. 2A.

In some embodiments, after determining the respective degrees ofassociation between the user intent and one or more users of the socialnetworking service, the social networking system may choose (418) usersof the social networking service whose respective degrees of associationsatisfy a criterion. In some embodiments, the criterion may be based atleast in part on location (e.g., the social networking system mayconnect nodes based on connection information associated with location).For example, referring to FIG. 3A, the social networking system maychoose users who have visited, lived, and/or currently live in Palo Alto(and in some embodiments surrounding areas, e.g., a predetermined mileradius around Palo Alto). In some embodiments, as an alternative or inaddition, the criterion may be based at least in part on activity (e.g.,the social networking system may connect nodes based on connectioninformation associated with activity). For example, the socialnetworking system may choose users who have visited (e.g., “checked in,”“liked,” “favorited,” etc.) a location relevant to the user intent(e.g., a French restaurant in Palo Alto, and in some embodiments Frenchrestaurants in the surrounding areas). In some embodiments, as analternative or in addition, the criterion may be based at least in parton time. For example, the social networking system may choose users whohave visited Palo Alto within a threshold period of time and/or userswho have visited a French restaurant in Palo Alto (and in someembodiments in the surrounding areas) within a threshold period of time.In some embodiments, the criterion is based at least on part on acombination of location, activity, and/or time. Moreover, the criterionmay be based on other information (e.g., other portions of theconnection information 220, FIG. 2A). Connection information 220 isdiscussed in further detail above with reference to FIG. 2A.

When choosing the users of the social networking service whoserespective degrees of association satisfy the criterion, the socialnetworking system may choose (420) users who are also contacts of theuser and thus are directly connected to the user in the socialnetworking service. Using the example from above, the social networkingsystem may determine that an indirect connection exists between the user(e.g., the first node) and the respective user (e.g., the second node)via the French Restaurant X (e.g., the third node). Thereafter, thesocial networking system may also determine a direct connection (e.g.,relationship) between the user (e.g., the first node) and the respectiveuser (e.g., the second node). In this way, the social networking systemmay further limit a number of instances of the first notificationprovided. Moreover, the user may trust recommendations from contacts asopposed to recommendations from non-contacts.

In some embodiments, when selecting the users to receive the firstnotification, the social networking system may choose (422) users of thesocial networking service with respective degrees of association withthe user that satisfy a criterion. To determine a respective degree ofassociation with the user, the social networking system may determine aconnection (e.g., an edge) between the user (e.g., a first node) and arespective user (e.g., a second node) of the social networking service.In some embodiments, the connection (e.g., the edge) may be a directconnection (e.g., an edge connecting a pair of nodes represents arelationship (e.g., friends, relatives, etc.) between the pair ofnodes), such that the two users are contacts. In some embodiments, thecriterion may be satisfied by direct connections. In some embodiments,the social networking system may choose (424) users who are contacts ofthe user. Edges and nodes are discussed in further detail above withreference to FIG. 2A.

In some embodiments, when selecting the users to receive the firstnotification, the social networking system may identify (426) a locationof the user at the time of the post. In some circumstances, the socialnetworking system may not determine a location of the user from the post(e.g., the user may post “Where can I find good French food.”). In thesecircumstances, the social networking system may determine the locationof the user using other information. For example, the user may have“checked in” to the location (or near the location) prior to making thepost (e.g., “checked in” 10 minutes prior to making the post). Inanother example, the social networking system may receive locationinformation from the client device of the user (e.g., receive locationinformation via a location detection device 262 of the client device240, FIG. 2B).

Furthermore, when selecting the users to receive the first notification,the social networking system may choose (428) users of the socialnetworking service with locations within a specified range of theidentified location. For example, the social networking system maychoose users who have visited, lived, and/or currently are visiting orlive in the location (and in some embodiments surrounding areas). Insome embodiments, the social networking system may limit the selectionto users who have visited, lived, currently are visiting, and/orcurrently live in the location within a recent period of time (e.g.,within the last year). In some embodiments, the period of time may varydepending on a nature of the location (e.g., the period of time mayexpand when the identified location is a foreign city).

In performing the method 400, the social networking system provides(430, FIG. 4B) the first notification to the plurality of users. Forexample, the social networking system may provide respective instancesof the first notification to respective users of the plurality of users.Referring to FIG. 3B, the social networking system may provide User_17with a respective instance of the first notification. In someembodiments, to view the first notification, the User_17 may interactwith a display of client device 104-2 to select 324 a notificationbutton 326 displayed on the display.

Furthermore, in some embodiments, the first notification may include afirst portion and a second portion. In some embodiments, the firstportion of the first notification may ask each of the plurality ofselected users whether or not they want to participate (e.g., whether ornot they want to provide a recommendation). For example, referring toFIG. 3C, the first portion 328 of the first notification 330 may relateto the question 320 (FIG. 3A) and may ask “Would you like to help Johnfind a French restaurant in Palo Alto?” In another example, the firstportion 328 of the first notification 330 may relate to a node (e.g.,the third node) that forms an indirect connection between the user(e.g., the first node) and a respective user (e.g., the second node).For example, using the example from above, the respective user (e.g.,the second node) may have recently “checked in” to the French RestaurantX. Accordingly, the first notification 330 may ask the respective user,“Would you like to recommend the French Restaurant X in Palo Alto yourecently visited?” In some embodiments, the social networking system mayskip the first portion 328 and simply present the second portion 338 ofthe first notification 330 to the respective user (FIG. 3D).

In some embodiments, in accordance with a determination that arespective user of the plurality of users declines to participate (e.g.,selection of No-button 332, FIG. 3C), the social networking system maynot present the second portion 338 of the first notification 330 to therespective user. However, in accordance with a determination that therespective user of the plurality of users accepts (selection 334 ofYes-button 336, FIG. 3C), the social networking system may present thesecond portion 338 of the first notification 330 to the respective user.Referring to FIG. 3D, User_17 may provide a recommendation 340 in thesecond portion 338 of the first notification 330. User_17 may interactwith the display of client device 104-2 to select 342 a share button 344displayed on the display.

After providing the first notification to the plurality of users, thesocial networking system receives (432) one or more responses to thefirst notification from one or more users of the plurality of users. Theone or more responses may include information responsive to the firstnotification. The social networking system provides (434) theinformation responsive to the first notification to the user. In someembodiments, the information responsive to the first notificationincludes a response to the offer (436). In some embodiments, theinformation responsive to the first notification includes arecommendation (438). For example, referring to 3D, User_17 recommendsFrench Restaurant X on University Avenue in Palo Alto. As such, therecommendation by User_17 includes information responsive to the firstnotification (i.e., John was seeking recommendations for Frenchrestaurant's in Palo Alto). In response to receiving the recommendationfrom the client device 104-2, the social networking system may providethe recommendation to the user. In some embodiments, the socialnetworking system may provide (440) the one or more received responsesto the user (e.g., the social networking system may not filterresponses).

In some embodiments, prior to providing the information responsive tothe first notification to the user, the social networking system maydetermine (442, FIG. 4C) relevance scores for the one or more receivedresponses. The relevance scores indicate respective degrees of relevanceof the one or more received responses to the user intent. The socialnetworking system may determine relevance scores to filter outirrelevant (e.g., unhelpful) responses.

For example, when the user intent is fora restaurant recommendation, thesocial networking system may assign no score (or a zero score) to areceived response that lacks a restaurant (i.e., no degree ofrelevance). In another example, the social networking system may assigna first score to a received response that includes a restaurant but doesnot address or conform to the user intent for the post (i.e., a firstdegree of relevance). For example, referring to FIG. 3A, the receivedresponse may say “too bad Palo Alto doesn't have a John's Steaks, I lovethat place.” Such as response does not address or conform to (i.e., isnot relevant to) the user intent of the question 302 as the responsedoes not actually provide the requested recommendation. In anotherexample, the social networking system may assign a second score (e.g.,higher than the first score) to a received response that includes arestaurant in a relevant geographic area (i.e., a second degree ofrelevance). For example, referring to FIG. 3D, User_17 recommends FrenchRestaurant X located on University Avenue in Palo Alto. The socialnetworking system may assign the second score to the received responseas the received response addresses and conforms to the question 302(FIG. 3A). In some embodiments, the social networking system may assigna third score (e.g., higher than the first and second scores) to areceived response that is particularly relevant and/or useful (i.e., athird degree of relevance). For example, a received response from arespective user may include reviews of multiple French restaurants inPalo Alto.

In addition, the social networking system may determine (444) that therelevance scores for the one or more received responses satisfy athreshold. In some embodiments, the threshold may be associated with therespective degrees of relevance and/or the determined scores. Forexample, the social networking system may set the threshold such thatresponses with respective second degrees of relevance and above (orfirst degrees of relevance and above, or third degrees of relevance)satisfy the threshold.

In some embodiments, in accordance with determining that the relevancescores for received responses do not satisfy the threshold (444-No), thesocial networking system may discard (446) received responses that donot satisfy the threshold. For example, the social networking system mayprovide the first notification to a group of users of the socialnetworking service. The social networking system may receive responsesfrom at least some of the group. Out of those received responses, all orsome may not be relevant to the question posed/asked by the user. Forexample, the social networking system may discard received responses of“have fun in Palo Alto!,” “French food is the best!,” and the like.Moreover, the social networking system may discard received responseswith respective first degrees of relevance when the threshold is set toa second degree of relevance and above, or discard responses withrespective first or second degrees of relevance when the threshold isset to a third degree of relevance.

In some embodiments, in accordance with determining that the relevancescores for the one or more received responses satisfy the threshold(444-Yes), the social networking system may provide (434) theinformation responsive to the first notification (i.e., the informationin responses determined to be relevant to the user intent) to the user.For example, referring to FIG. 3E, the social networking system providesthe response by User_17 to John Smith. When providing the response toJohn Smith, the social networking system may include the response byUser_17 in a response section 346 of the post 348.

In some embodiments, the social networking system may determine (448,FIG. 4C) respective intents associated with the one or more receivedresponses based at least in part on content of the one or more receivedresponses (e.g., in a similar manner as for the user intent for thepost). For example, referring to FIG. 3D, the social networking systemmay determine that the received response from User_17 is arecommendation by analyzing the text (e.g., analyzing the text for oneor more restaurant names and for a relevant location). In someembodiments, the social networking system may compare content in areceived response with connection information (e.g., connectioninformation 220, FIG. 2A). For example, the social networking system maycompare a restaurant name in a received response with one or morerelevant pages on the social networking service. Referring to FIG. 3D,the social networking system may match the text, “French Restaurant X,”with a page (e.g., an account, a node) of French Restaurant X in thesocial networking service. In this way, the social networking system maydetermine that a given recommendation in a received response is relevantand valid. In another example, the social networking system may comparea restaurant name in a received response with a webpage distinct fromthe social networking service (e.g., the social networking system mayperform a search on the World Wide Web).

Furthermore, the social networking system may determine whether therespective intents associated with the one or more received responsesmatch the user intent. In some embodiments, in accordance with adetermination that the respective intents associated with receivedresponses do not match (e.g., do not relate to) the user intent, thesocial networking system may discard the received responses that do notmatch the user intent. In some embodiments, the social networking systemmay determine the respective intents associated with the one or morereceived responses when determining the relevance scores. For example,received responses with respective intents that do not match the userintent may receive a reduced score as compared to received responseswith respective intents that match the user intent.

In some embodiments, in accordance with a determination that therespective intents associated with the one or more received responsesmatch (e.g., relate to) the user intent, the social networking systemmay provide (434) the information responsive to the first notificationto the user.

Furthermore, in some embodiments, the social networking system maygenerate (450) a second notification associated with the one or morereceived responses. The second notification includes indications of therespective intents associated with the one or more received responses.In some embodiments, the social networking system may generate thesecond notification in accordance with a determination that therespective intents associated with the one or more received responsesmatch (e.g., relate to) the user intent. Alternatively or in addition,in some embodiments, the social networking system may generate thesecond notification in accordance with a determination that therelevance scores for the one or more received responses satisfy thethreshold (444-Yes).

In some embodiments, when providing the information responsive to thefirst notification to the user, the social networking system may provide(452, FIG. 4B) the second notification to the user. For example,referring to FIG. 3E, the client device 104-1 may receive the secondnotification from the social networking system. In response to receivingthe second notification, the client device 104-1 may signal reception ofthe second notification to the user 102-1 (i.e., John Smith) with anindicator 350 in the notification button 306. The user 102-1 mayinteract with a display (e.g., touch or click on) of the client device104-1 to view the second notification (e.g., which includes the receivedresponse from User_17 or information from the received response fromUser_17). Although FIG. 3E shows a single notification in thenotification button 306, a number in the indicator may reflect a numberof received responses.

In some embodiments, the request in the post is for a recommendation ina geographic area. For example, referring to FIG. 3A, the question 320requests a restaurant recommendation in Palo Alto, Calif., USA. In someembodiments, the recommendation in the information responsive to thefirst notification is specific to the geographic area. For example,referring to FIG. 3D, the response 340 by User_17 relates to arestaurant in Palo Alto.

In some embodiments, the social networking system may identify (454) alocation for the recommendation in the information responsive to thefirst notification. In some embodiments, the social networking systemmay identify the location using connection information (e.g., connectioninformation 220, FIG. 2A). For example, the social networking system maycompare a restaurant name in a received response with one or morerelevant pages on the social networking service. The social networkingsystem may find a location associated with a page if the compareoperation is successful (e.g., a match is found). In some embodiments,the social networking system may perform a search (e.g., on the WorldWide Web) to identify the location for the recommendation.

In addition, the social networking system may generate (454) a map andadd (456) a marker (e.g., marker 354, FIG. 3F) to the map (e.g., map352, FIG. 3F) at the identified location. In some embodiments, thesocial networking system may add (458) a hyperlink to the marker. Thehyperlink may be associated with the recommendation in the informationresponsive to the first notification. For example, the hyperlink may befor a page (e.g., a webpage) of the recommendation (e.g., recommendation340, FIG. 3D) on the social networking service (e.g., the recommendationmay be a node). In another example, the hyperlink may be for a webpageof the recommendation distinct from pages of the social networkingservice.

In some embodiments, the social networking system may provide (460) themap with the marker to the user. For example, referring to FIG. 3F, thesocial networking system may generate a map 352, add a marker 354 at theidentified location, and provide the map 352 to the client device 104-1for display. In some embodiments, the social networking system may add aplurality of markers to the map that are associated with respectivereceived responses. Moreover, the social networking system may adjust asize of the map in accordance with identified locations for therespective received responses. For example, the social networking systemmay zoom out when the identified locations span a larger area (e.g.,identified locations span multiple cities) as compared to a smaller area(e.g., a single city).

Although some of various drawings illustrate a number of logical stagesin a particular order, stages which are not order dependent may bereordered and other stages may be combined or broken out. While somereordering or other groupings are specifically mentioned, others will beobvious to those of ordinary skill in the art, so the ordering andgroupings presented herein are not an exhaustive list of alternatives.Moreover, it should be recognized that the stages could be implementedin hardware, firmware, software or any combination thereof.

The foregoing description, for purpose of explanation, has beendescribed with reference to specific embodiments. However, theillustrative discussions above are not intended to be exhaustive or tolimit the scope of the claims to the precise forms disclosed. Manymodifications and variations are possible in view of the aboveteachings. The embodiments were chosen in order to best explain theprinciples underlying the claims and their practical applications, tothereby enable others skilled in the art to best use the embodimentswith various modifications as are suited to the particular usescontemplated.

What is claimed is:
 1. A method, comprising: determining a user intentassociated with a post from a user on a social networking service, basedat least in part on content of the post; generating a first notificationof the user intent associated with the post; selecting a plurality ofusers of the social networking service to receive the firstnotification; providing the first notification to the plurality ofusers; and after providing the first notification to the plurality ofusers: receiving one or more responses to the first notification fromone or more users of the plurality of users, the one or more responsesincluding information responsive to the first notification; generating asecond notification, including indications of determined respectiveintent associated with the one or more received responses based, atleast in part, on content of the one or more received responses; andproviding the second notification to the user.
 2. The method of claim 1,wherein selecting the plurality of users of the social networkingservice to receive the first notification comprises: determiningrespective degrees of association between the user intent and users ofthe social networking service; and choosing users of the socialnetworking service whose respective degrees of association satisfy acriterion.
 3. The method of claim 2, wherein choosing the users of thesocial networking service whose respective degrees of associationsatisfy the criterion comprises choosing users who are also contacts ofthe user.
 4. The method of claim 1, wherein selecting the plurality ofusers of the social networking service to receive the first notificationcomprises choosing users of the social networking service withrespective degrees of association with the user that satisfy acriterion.
 5. The method of claim 4, wherein choosing the users of thesocial networking service with respective degrees of association withthe user that satisfy the criterion comprises choosing users who arecontacts of the user.
 6. The method of claim 1, wherein selecting theplurality of users of the social networking service to receive the firstnotification comprises: identifying a location of the user at the timeof the post; and choosing users of the social networking service withlocations within a specified range of the identified location.
 7. Themethod of claim 1, further comprising, at the server system: determiningrelevance scores for the one or more received responses, the relevancescores indicating respective degrees of relevance of the one or morereceived responses to the user intent; and determining that therelevance scores for the one or more received responses satisfy athreshold; wherein providing the information responsive to the firstnotification to the user is performed in accordance with determiningthat the relevance scores for the one or more received responses satisfythe threshold.
 8. The method of claim 1, wherein providing theinformation responsive to the first notification to the user comprisesproviding the one or more received responses to the user.
 9. The methodof claim 1, wherein determining the user intent associated with the postcomprises comparing the content of the post with content of a pluralityof previous posts made by users of the social networking service. 10.The method of claim 9, wherein respective posts of the plurality ofprevious posts have previously identified intents.
 11. The method ofclaim 1, wherein: determining the user intent associated with the postcomprises identifying an offer in the post; and the informationresponsive to the first notification includes a response to the offer.12. The method of claim 1, wherein: determining the user intentassociated with the post comprises identifying a request in the post fora recommendation; and the information responsive to the firstnotification includes a recommendation.
 13. The method of claim 12,wherein: the request is for a recommendation in a geographic area; andthe recommendation in the information responsive to the firstnotification is specific to the geographic area.
 14. The method of claim12, further comprising, at the server system, identifying a location forthe recommendation in the information responsive to the firstnotification, wherein providing the information responsive to the firstnotification to the user comprises: generating a map; adding a marker tothe map at the identified location; and providing the map with themarker to the user.
 15. The method of claim 14, wherein providing theinformation responsive to the first notification to the user furthercomprises adding a hyperlink to the marker, the hyperlink beingassociated with the recommendation in the information.
 16. A serversystem, comprising: one or more processors; and memory storing one ormore programs for execution by the one or more processors, the one ormore programs including instructions for: determining a user intentassociated with a post from a user on a social networking service, basedat least in part on content of the post; generating a first notificationof the user intent associated with the post; selecting a plurality ofusers of the social networking service to receive the firstnotification; providing the first notification to the plurality ofusers; and after providing the first notification to the plurality ofusers: receiving one or more responses to the first notification fromone or more users of the plurality of users, the one or more responsesincluding information responsive to the first notification; generating asecond notification, including indications of determined respectiveintent associated with the one or more received responses based, atleast in part, on content of the one or more received responses; andproviding the second notification to the user.
 17. The system of claim16, wherein selecting the plurality of users of the social networkingservice to receive the first notification comprises: determiningrespective degrees of association between the user intent and users ofthe social networking service; and choosing users of the socialnetworking service whose respective degrees of association satisfy acriterion.
 18. The system of claim 17, wherein choosing the users of thesocial networking service whose respective degrees of associationsatisfy the criterion comprises choosing users who are also contacts ofthe user.
 19. The system of claim 16, wherein respective posts of theplurality of previous posts have previously identified intents.
 20. Anon-transitory computer-readable storage medium, storing one or moreprograms configured for execution by one or more processors of a serversystem, the one or more programs including instructions for: determininga user intent associated with a post from a user on a social networkingservice, based at least in part on content of the post; generating afirst notification of the user intent associated with the post;selecting a plurality of users of the social networking service toreceive the first notification; providing the first notification to theplurality of users; and after providing the first notification to theplurality of users: receiving one or more responses to the firstnotification from one or more users of the plurality of users, the oneor more responses including information responsive to the firstnotification; generating a second notification, including indications ofdetermined respective intent associated with the one or more receivedresponses based, at least in part, on content of the one or morereceived responses; and providing the second notification to the user.